package com.yssoft.controller.handle;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.alibaba.fastjson.JSONObject;
import com.yssoft.controller.BaseController;
import com.yssoft.entity.core.TProcessingTechnology;
import com.yssoft.entity.core.TProducts;
import com.yssoft.service.core.ProductsService;
import com.yssoft.service.handle.ProcessService;

/**
 * @author 王永宁
 * @time 2018/5/24 上午 8:37
 * @  产品工艺管理控制器
 */
@Controller
@RequestMapping(value = "/productProcess")
public class ProductProcessController  extends BaseController{

	@Resource
	private ProductsService productService;
	
	/**
	 * 跳转产品工艺管理列表
	 * @author 王永宁
	 * @return
	 */
	@RequestMapping(value = "productProcessList")
	public String productProcessList(){
		return "handle/productProcessList";
	}
	
	/**
	 * 查询产品工艺管理信息
	 * @author 王永宁
	 * @param page
	 * @param limit
	 * @param name
	 * @param model
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "queryProductProcessList")
	public JSONObject queryProcessList(@RequestParam(name = "page",defaultValue = "0") int page,
    		@RequestParam(name = "limit",defaultValue = "10") int limit,String name, Model model){
		JSONObject pageList = productService.queryProductPage(page, limit, name);
		return pageList;
	}
	
	   /**
	    * @方法名称: toProcess
	    * @功能描述: 获取商品对应工艺
	    * @作者: 王永宁
	    * @创建时间: 2018年5月24日 上午9:41:14
	    * @param id
	    * @param model
	    * @return String
	    */
	   @RequestMapping(value = "toProcess", method = RequestMethod.GET)
	   public String toProcess(Integer id, Model model) {
		   model.addAttribute("proId", id);
		   model.addAttribute("myProcessList", productService.queryProcessByProId(id));
		   model.addAttribute("otherProcessList", productService.queryOtherProcessByProId(id));
		   return "handle/productProcessEdit";
		}
	   
	   /**
	    * @方法名称: addProductProcess
	    * @功能描述: 添加产品对应工艺
	    * @作者: 王永宁
	    * @创建时间: 2018年5月24日 上午11:01:49
	    * @param segoodIds
	    * @param prodId
	    * @return String
	    */
	   	@RequestMapping(value = "addProductProcess", method = RequestMethod.POST)
		@ResponseBody
		public String addProductProcess(String segoodIds,int prodId) {
			String result = "1";
			try {
				productService.updateProductProcess(segoodIds,prodId);
			} catch (Exception e) {
				e.printStackTrace();
				result = "0";
			}
	       return result;
		}
	   	
	   	/**
	   	 * @方法名称: delProductProcess
	   	 * @功能描述: 删除产品对应工艺
	   	 * @作者: 王永宁
	   	 * @创建时间: 2018年5月24日 上午11:02:12
	   	 * @param segoodIds
	   	 * @param prodId
	   	 * @return String
	   	 */
	   	@RequestMapping(value = "delProductProcess", method = RequestMethod.POST)
		@ResponseBody
		public String delProductProcess(String segoodIds,int prodId) {
			String result = "1";
			try {
				productService.deleteProductProcess(segoodIds,prodId);
			} catch (Exception e) {
				e.printStackTrace();
				result = "0";
			}
	       return result;
		}
		   /**
		    * @方法名称: productProcessView
		    * @功能描述: 获取商品工艺详情
		    * @作者: 王永宁
		    * @创建时间: 2018年5月24日 上午12:23:14
		    * @param id
		    * @param model
		    * @return String
		    */
		   @RequestMapping(value = "productProcessView", method = RequestMethod.GET)
		   public String productProcessView(Integer id,Integer wordId,  Model model) {
			   model.addAttribute("product",  productService.queryProductById(id));
			   model.addAttribute("productProcess", productService.queryProcessAndViewByProId(id,wordId));
			   return "handle/productProcessView";
			}
		   /**
		    * @方法名称: saveSort
		    * @功能描述: 商品工艺排序
		    * @作者: 王永宁
		    * @创建时间: 2018年5月24日 下午2:37:14
		    * @param id
		    * @param model
		    * @return String
		    */
		   @RequestMapping(value = "saveSort")
		   public String saveSort(String pId,String tIds,String sorts) {
			  String[] ids = tIds.split(",");
			  String[] sort = sorts.split(",");
			  for (int i = 0; i < sort.length; i++) {
				productService.saveSort(sort[i],pId,ids[i]);
			}
			   
			   return "redirect:productProcessList";
		   }
}
